/**
 * 文件描述：公共方法
 */
import { config } from '../store/market/api'
var Rxports = {
    methods: {
        goBack: function() {
            window.history.back();
        },
        /**
         * 传入毫秒，格式化时间
         * @param second 毫秒数
         * @param fmt 格式，常见：'yyyy-MM-dd hh:mm:ss.S'、'yyyy-M-d h:m:s.S'
         * @returns {*}
         */
        formatDate(second, fmt) {
          'use strict';

          var date = new Date(second), // 后台时间转javascript时间戳
            o = {
              'M+': date.getMonth() + 1, // 月份
              'd+': date.getDate(), // 日
              'h+': date.getHours()%24 === 0 ? 0 : date.getHours()%24, // 小时
              'H+': date.getHours(), // 小时
              'm+': date.getMinutes(), // 分
              's+': date.getSeconds(), // 秒
              'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
              S: date.getMilliseconds() // 毫秒
            };

          if (/(y+)/.test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (date.getFullYear().toString()).substr(4 - RegExp.$1.length));
          }

          for (var k in o) {
            if (new RegExp('(' + k + ')').test(fmt)) {
              fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr((o[k].toString()).length)));
            }
          }

          return fmt;
        },
        isEmptyObject(obj) {
          for (var name in obj) {
            return false;
          }
          return true;
        },
        isArray : Array.isArray || ((obj)=> { return toString.call(obj) === '[object Array]' }),
        /**
        * 微信jssdk初始化
        * @param self 调用vue文件当前的this
        */
        wxConfig(_self) {
          'use strict';
          let self = _self;
          self.$store.dispatch('getJsSdkInitParam', {
            pageUrl: window.location.href.split('#')[0], // 当前地址
          }).then(function(response) {
            console.log(response);
            if (response && response.code == 0) {
              // 请求成功
              var wxData = response.data;

              if (!wxData.hasOwnProperty('signature')) {
                self.$store.commit('SHOW_TOAST', {msg: '亲，微信获取ticket失败'});
              } else {

                wx.config({
                  debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                  appId: wxData.appId, // 必填，公众号的唯一标识
                  timestamp: wxData.timestamp, // 必填，生成签名的时间戳
                  nonceStr: wxData.nonceStr, // 必填，生成签名的随机串
                  signature: wxData.signature,// 必填，签名，见附录1
                  jsApiList: ['scanQRCode', 'chooseWXPay', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'hideAllNonBaseMenuItem', 'showMenuItems',
                    'hideOptionMenu', 'showOptionMenu'], // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
                  success: function (res) {
                  }
                });

                wx.ready(function() {
                  wx.hideOptionMenu(); // 隐藏右上角菜单接口
                });

                wx.error(function(res) {
                  self.$store.commit('SHOW_TOAST', {msg: JSON.stringify(res) + ',请退出重试！'});
                  self.wxConfig();
                });
              }
            } else {
              // 服务器其他错误
              self.$store.commit('SHOW_TOAST', {msg: response.msg});
            }
          }, function() {
            self.$store.commit('SHOW_TOAST', {msg: '亲，服务器错误，请联系管理员'});
          });
        },
        /**
         * 从href抓取需要的数据
         * @param paramString 属性名称
         * @returns {*} 属性的值
         */
        localSearchQuery (paramString) {
          var search = window.location.href,
            reg = new RegExp('[?&]' + paramString + '=([^&|^#]+)'),
            result = null;

          search.replace(reg, function($1, $2) {
            result = decodeURIComponent($2);
          });
          return result;
        },
        /**
         * 从href抓取需要的数据
         * @param paramString 属性名称
         * @returns {*} 属性的值
         */
        isAndroid () {
          var u = navigator.userAgent;
          //var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
          //var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
          //alert('是否是Android：'+isAndroid);
          //alert('是否是iOS：'+isiOS);
          return u.indexOf('Android') > -1 || u.indexOf('Adr') > -1;
        },
        setTitle (title) {
          var linkName = window.location.href.split('#')[1];
          if(linkName === '/marketIndex') {
            wx.showOptionMenu();
          } else {
            wx.hideOptionMenu();
          }
          var u = navigator.userAgent,
            isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
            isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);

          if (isAndroid) {
            document.title = title;
          } else if (isiOS) {
            var body = document.body;

            document.title = title;
            var iframe = document.createElement('iframe')
            iframe.setAttribute('style', 'display: none')
            iframe.setAttribute('src', '/public/images/favicon.ico')
            var listener = function(e) {
              setTimeout(function() {
                iframe.removeEventListener('load',listener)
                iframe.remove()
              }, 0);
            }
            body.appendChild(iframe);
          }
        },
        setFixed(num) {
          var r = /^[0-9]*[1-9][0-9]*$/;　　//正整数
          if(r.test(num)) { //str为你要判断的字符 执行返回结果 true 或 false
            return num
          } else {
            return num.toFixed(2)
          }
        },
        // 格式化距离
        formatDistance(distance) {
          var dis = '';
          if(distance < 1000)
            dis = distance+"米";
          else if(distance > 1000 && distance < 10000)
            dis = (Math.round(distance/100)/10).toFixed(2) + "公里";
          else if(distance > 10000)
            dis = (Math.round(distance/100)/10).toFixed(1) + "公里";
          return dis;
        }
    }

}

module.exports = Rxports



































